The present invention relates to data communication, and particularly to data transmission in data communication networks.
In recent years, the need for global data networking capability has rapidly expanded. Computers at one location often have a need to transmit data to computers at a distant location. In order to meet this need, broadband satellite communication systems have been proposed as an alternative to land-based communication systems. One type of satellite communication system is described in a number of U.S. patents assigned to the assignee of this patent application, including U.S. Pat. Nos. 5,386,953; 5,408,237; 5,527,001; 5,548,294; 5,621,415; 5,641,135; 5,642,122; 5,650,788; 5,736,959; and 5,740,164. These patents and other pending applications assigned to the assignee of this patent application describe a satellite communication system that includes a constellation of low-Earth-orbit (LEO) satellites capable of transmitting data from one location on the Earth""s surface to another location. Each LEO satellite has a communication footprint that covers a portion of the Earth""s surface as the satellite passes over the Earth. The communication footprint defines the area of the Earth within which ground terminals can communicate with the satellite. During the period of time a ground terminal remains within the borders of a satellite footprint, the ground terminal may transmit data to and receive data from the xe2x80x9cservicingxe2x80x9d satellite. When a satellite reaches the end of its servicing arc, another satellite in orbit is positioned to xe2x80x9cservicexe2x80x9d the ground terminal previously covered by the satellite reaching the end of its servicing arc.
Data to be sent from one location on the Earth to another location is transmitted from a source ground terminal to the satellite servicing the ground terminal via an uplink data channel. The data is routed through the constellation of LEO satellites to the satellite servicing the ground terminal that is to receive the data. The latter satellite transmits the data to the destination ground terminal via a downlink data channel. Thus, the constellation of LEO satellites and the ground terminals form a data communication network wherein the ground terminals and satellites form nodes of the network.
A data communication network uses a transmission protocol to govern the format and manner in which data communication takes place in the network. Data to be communicated through a network is typically broken up and formatted into digital data xe2x80x9cpackets.xe2x80x9d The resulting data packets are addressed and routed through the network to a destination terminal in accordance with the transmission protocol used by the network.
In a preferred embodiment of the LEO satellite communication system described above, the data packets are routed independently through the satellites in the constellation. The data packets may therefore arrive at the destination ground terminal in a different order than which they were sent by the source ground terminal. The communication handoff from one servicing satellite to the next servicing satellite and changes in the phasing of satellites in their orbital planes may also contribute to out-of-order delivery of the data packets.
For circumstances in which in-order packet delivery is required (e.g., by the transmission protocol of the data packets), sequence information may be included in the data packets prior to transmission. While sequence information that is included in a data packet may be used to reorder the transmitted data packets, the sequence information adds to the overhead information for routing and control that is transmitted in each data packet. Where transmission resources in a data communication network are limited, adding to the overhead information in transmitted data packets reduces the communication efficiency of the data communication network. The added information uses resources that could otherwise be used for transmitting user data. A need therefore exists for a method to minimize the number of bits used in a data packet for sequence information so that transmission overhead is reduced while still providing a mechanism for reordering packets delivered out of order.
Furthermore, a destination terminal may receive data packets from a number of different source terminals. Without using dedicated communication links to effectively identify the source of the data packets and the particular data transmission in which the packets were sent, the data packets themselves must include source information so that the destination terminal will know how to organize and process the incoming data packets. In some existing networks (e.g., networks using Internet Protocol), data packets include a source terminal""s complete network address in their routing and control information to identify the transmission source. However, as noted above, adding to the transmission overhead information reduces the data communication efficiency of the network. A complete network address is often longer than necessary to adequately identify a data transmission source to a destination terminal. A need therefore exists for a method to minimize the number of bits in a data packet allocated for a source identifier.
A need also exists for a method of setting up a source identifier having a minimal number of bits allocated to the source identifier, as discussed above. In some existing networks (e.g., networks using Frame Relay or Asynchronous Transfer Mode (ATM) protocol), contexts are set up for data transmissions from one point to another in the network in which labels are set up to identify the transmission over a particular link. However, these labels have no meaning outside of that particular point-to-point link. In other networks, header compression schemes have been used in which routing and control information in a data packet is compressed and later reconstructed. These compression schemes, however, have been limited to point-to-point links as well. Accordingly, there is a need for a method of data transmission that spans a plurality of point-to-point transmission links and uses a reduced-size source identifier that has meaning to the destination end of the data transmission.
As noted above, a transmission protocol governs the format and manner in which data transmission takes place in a data communication network. Those skilled in the art of data communication will appreciate that different computer networks may use different transmission protocols that are not directly compatible with one another. For example, an Internet Protocol (IP) network may incorporate subnetworks and links that use ATM protocol. An adaptation is required before an IP packet can be communicated through an ATM link. In order for a LEO satellite data communication network to be competitive in a market with diverse end users desiring to transmit data via the satellite network, the satellite network must allow for transmission of data packets formatted according to a wide variety of data transmission protocols that are potentially incompatible with the transmission protocol of the satellite network.
Moreover, because end users typically use a satellite network only as an intermediary in the transmission of data, it is preferable that the operation of the satellite network be xe2x80x9cinvisiblexe2x80x9d to the end users. Accordingly, there is a need for a data transmission method that efficiently transmits different protocol data packets through a satellite network such that the data packets received by an end user at the receiving end of a data communication are in the same format as sent by an end user at the sending end of the communication, even when the packets are received out of order.
The present invention provides a method of data transmission that addresses the above-identified needs and other shortcomings in the prior art.
The present invention is a method of data transmission in a data communication network. In accordance with the present invention, a data communication network, such as a LEO satellite data communication network of the type discussed above, receives data packets formatted according to a wide variety of different transmission protocols for transmission through the data communication network. The different protocol data packets (also referred to herein as xe2x80x9csecondary data packetsxe2x80x9d) that are received by the data communication network are packed into new data packets formed in accordance with the transmission protocol of the data communication network (also referred to herein as xe2x80x9cprimary data packetsxe2x80x9d). The primary data packets are then transmitted through the data communication network. Where packet reordering is required, the transmitted primary data packets are reordered if received out of order. The secondary data packets are then unpacked from the primary data packets and placed in an output queue.
According to one aspect of the invention, the primary data packets transmitted through the data communication network include variable length-fields for recording a source identifier, sequence number, and first packet offset. The field lengths for the source identifier, sequence number, and first packet offset fields are established during a connection negotiation process that occurs prior to the data transmission. In the connection negotiation process, a source terminal and destination terminal in the data communication network exchange one or more messages to establish a xe2x80x9cconnection,xe2x80x9d or association, between the respective terminals.
The source identifier field holds a source identifier that uniquely identifies the data transmission, or connection, to the destination terminal. If a destination terminal decides to admit a connection after receiving a connection request, the destination terminal determines the number of bits to be assigned to the source identifier field. The length of the source identifier field is based largely on the number of connections the destination terminal is handling or expects to handle.
The sequence number field in a primary data packet holds a value indicating the relative position of the data packet in a series of primary data packets. The sequence number field length is primarily based on the number of data packets expected to be transmitted in the connection during a particular period of time. The number of data packets may be derived from connection parameters, such as the bandwidth allotted to the connection, as well as the xe2x80x9ctime to livexe2x80x9d of a primary data packet.
During the connection negotiation process, the destination terminal also determines a field length for a first packet offset field. The first packet offset field in a primary data packet holds information indicating the location at which a first new secondary data packet is packed into the primary data packet. The first packet offset parameter is used in unpacking secondary data packets from the primary data packets transmitted through the data communication network.
To report the connection admission to the source terminal, the destination terminal sends a connection reply. The destination terminal communicates the determined field lengths for the source identifier, sequence number, and first packet offset fields to the source terminal in the connection reply. During the connection negotiation process, the destination terminal also assigns a unique source identifier for the connection and communicates the source identifier to the source terminal in the connection reply.
For an embodiment of the invention described herein, primary data packets have an overall fixed length. As secondary data packets are packed into primary data packets, if a secondary data packet does not completely fill a primary data packet, another secondary data packet is added to the same primary data packet until the primary data packet is filled. If the available xe2x80x9cspacexe2x80x9d remaining at the end of a primary packet is smaller than the length of the next secondary data packet to be packed, the next secondary data packet is preferably divided to define a portion that fills the available space. The remaining, unpacked portion of the secondary data packet is carried over and packed in a new primary data packet. The packing operation is repeated for all of the secondary data packets to be transmitted in the connection. In this manner, the available space in a primary data packet is more fully used, thus improving the data transmission efficiency of the data communication network.
After the primary data packets are transmitted, the destination terminal reorders the received primary data packets (if necessary) and unpacks the secondary data packets. The destination terminal uses the first packet offset value in the received primary data packet to locate secondary data packets for unpacking. The first packet offset allows secondary data packets to be unpacked from the received primary data packets even if one or more transmitted primary data packets are lost, delayed, or received out of order.
It is appreciated that optimizing field lengths for the source identifier, sequence number, and first packet offset fields, and transmitting different protocol data packets through the data communication network are applicable to many types of data communication networks and are particularly suitable for a LEO satellite data communication network.